# Load Packages
library(crosstalk)
## Warning: package 'crosstalk' was built under R version 4.1.3
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.3
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.8
## v tidyr 1.2.0 v stringr 1.4.0
## v readr 2.1.2 v forcats 0.5.1
## Warning: package 'ggplot2' was built under R version 4.1.3
## Warning: package 'tibble' was built under R version 4.1.3
## Warning: package 'tidyr' was built under R version 4.1.3
## Warning: package 'readr' was built under R version 4.1.3
## Warning: package 'purrr' was built under R version 4.1.3
## Warning: package 'dplyr' was built under R version 4.1.3
## Warning: package 'stringr' was built under R version 4.1.3
## Warning: package 'forcats' was built under R version 4.1.3
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(ggthemes)
## Warning: package 'ggthemes' was built under R version 4.1.3
library(scales)
## Warning: package 'scales' was built under R version 4.1.3
##
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
##
## discard
## The following object is masked from 'package:readr':
##
## col_factor
library(readxl)
## Warning: package 'readxl' was built under R version 4.1.3
library(plotly)
## Warning: package 'plotly' was built under R version 4.1.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
Making Dataframes
cbPalette <- c('#000000', '#187898', '#E69F00', '#56B4E9', '#009E73', '#F0E442', '#0072B2', '#D55E00', '#CC79A7', '#128409', '#6517A9', '#B91036', '8FB910', '#1029B9')
x_label <- c('Under 5 Female', 'Under 5 Male', '05-09 Female', '05-09 Male', '10-14 Female', '10-14 Male', '15-19 Female', '15-19 Male', '20-24 Female', '20-24 Male', '25-29 Female', '25-29 Male', '30-34 Female', '30-34 Male', '35-39 Female', '35-39 Male', '40-44 Female', '40-44 Male', '45-49 Female', '45-49 Male', '50-54 Female', '50-54 Male', '55-59 Female', '55-59 Male', '60-64 Female', '60-64 Male', '65-69 Female', '65-69 Male', '70-74 Female', '70-74 Male', '75-79 Female', '75-79 Male', '80-84 Female', '80-84 Male', '85 and over Female', '85 and over Male')
counties <- c('Anson', 'Cabarrus', 'Catawba', 'Chester', 'Cleveland', 'Gaston', 'Iredell', 'Lancaster', 'Lincoln', 'Mecklenburg', 'Rowan', 'Stanly', 'Union', 'York')
attainment_lvl <- c('Highest Degree: Less than a High School Diploma', 'Highest Degree: High School Diploma', 'Highest Degree: Some College, No Degree', "Highest Degree: Associate's Degree", "Highest Degree: Bachelor's Degree", "Highest Degree: Graduate or Professional Degree")
foreign_detail <- c('Foreign-Born: Africa', 'Foreign-Born: Asia', 'Foreign-Born: Europe', 'Foreign-Born: Latin America', 'Place of Birth Total')
countypop <- rbind(read_csv("cc-est2019-agesex-37.csv", show_col_types = F),
read_csv("cc-est2019-agesex-45.csv", show_col_types = F)) %>%
select(-SUMLEV, -STATE, -COUNTY) %>%
mutate(CTYNAME = gsub(' County', '', CTYNAME),
YEAR = as.integer(YEAR + 2007)) %>%
filter(CTYNAME %in% counties, YEAR >= 2010,
!(STNAME == 'South Carolina' & CTYNAME == 'Union')) %>%
distinct()
# Year 3 is 2010, Year 12 is 2019
# Making Charlotte Region
cr <- countypop[1:10,] %>%
mutate(CTYNAME = 'Charlotte Region')
for(i in 4:length(colnames(countypop))) {
for(j in 1:10){
cr[j,i] <- sum((countypop %>% filter(YEAR == j+2009))[i])
}
}
ggplot(data = countypop %>% filter(YEAR == 2019)) +
geom_col(aes(CTYNAME, POPESTIMATE, fill = CTYNAME), show.legend = F) +
scale_y_continuous(labels = comma) +
scale_fill_manual(values = cbPalette) +
coord_flip()

shared_pop <- SharedData$new(countypop)
bscols(widths = c(3, NA),
list(
filter_select('cp_year', label = 'Select Year', shared_pop, ~YEAR)),
plot_ly(shared_pop, x = ~CTYNAME, y = ~POPESTIMATE, type = 'bar')
)